/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.project.entity;


import java.util.Date;
import java.util.List;

import com.jeeplus.common.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.sys.entity.Office;
import com.jeeplus.modules.sys.entity.User;

/**
 * 项目基本信息类Entity
 * @author jacky
 * @version 2017-12-19
 */
public class BaseProjectInfo extends DataEntity<BaseProjectInfo> {
	
	private static final long serialVersionUID = 1L;
	private String projectNo;		// 编号
	private String researchType;		// 研究类型
	private String courseType;		// 课题类型
	private String fieldType;		// 领域分类
	private String courseName;		// 课题名称
	private User host;		// 主持人
	private Office hostDept;		// 主持人所在部门
	private String fieldTypeName; //领域分类名称
	private String achieveEndType; //预计成果最终形式
	private String achieveLanguage;//预计成果文种
	private Integer achieveWordNum; //预计成果总字数（千字）
	private Integer applyMoney;  //申请经费（单位：万元）
	private Date  planFinishStartTime; //计划课题完成的开始时间
	private Date planFinishEndTime; //计划课题完成的结束时间
	private String filePath;//论证资料路径
	private Integer isUploadFile;//1-已上传   0-未上传
	private Integer status; //项目状态：1.草稿【默认】，还未申报  2.申报  3.立项 4.中期检查  5.结项
	/**
	 * 只为了传参使用===================
	 */
	private Integer flag;
	private List<Integer> statusArray;
	// 查询条件
	private String startDate;
	private String endDate;
	/**
	 *立项时间
	 */
	private Date setupTime;
	/**
	 * 项目级别
	 */
	private Integer projectLevel; //国家 自治区 院级  其他
	
	public BaseProjectInfo() {
		super();
	}

	public BaseProjectInfo(String id){
		super(id);
	}

	@ExcelField(title="编号", align=2, sort=7)
	public String getProjectNo() {
		return projectNo;
	}

	public void setProjectNo(String projectNo) {
		this.projectNo = projectNo;
	}
	
	@ExcelField(title="研究类型", align=2, sort=8)
	public String getResearchType() {
		return researchType;
	}

	public void setResearchType(String researchType) {
		this.researchType = researchType;
	}
	
	@ExcelField(title="课题类型", align=2, sort=9)
	public String getCourseType() {
		return courseType;
	}

	public void setCourseType(String courseType) {
		this.courseType = courseType;
	}
	
	@ExcelField(title="领域分类", align=2, sort=10)
	public String getFieldType() {
		return fieldType;
	}

	public void setFieldType(String fieldType) {
		this.fieldType = fieldType;
	}
	
	@ExcelField(title="课题名称", align=2, sort=11)
	public String getCourseName() {
		return courseName;
	}

	public void setCourseName(String courseName) {
		this.courseName = courseName;
	}

	public User getHost() {
		return host;
	}

	public void setHost(User host) {
		this.host = host;
	}

	public Office getHostDept() {
		return hostDept;
	}

	public void setHostDept(Office hostDept) {
		this.hostDept = hostDept;
	}

	public String getFieldTypeName() {
		return fieldTypeName;
	}

	public void setFieldTypeName(String fieldTypeName) {
		this.fieldTypeName = fieldTypeName;
	}

	public String getAchieveEndType() {
		return achieveEndType;
	}

	public void setAchieveEndType(String achieveEndType) {
		this.achieveEndType = achieveEndType;
	}

	public String getAchieveLanguage() {
		return achieveLanguage;
	}

	public void setAchieveLanguage(String achieveLanguage) {
		this.achieveLanguage = achieveLanguage;
	}

	public Integer getAchieveWordNum() {
		return achieveWordNum;
	}

	public void setAchieveWordNum(Integer achieveWordNum) {
		this.achieveWordNum = achieveWordNum;
	}

	public Integer getApplyMoney() {
		return applyMoney;
	}

	public void setApplyMoney(Integer applyMoney) {
		this.applyMoney = applyMoney;
	}

	public Date getPlanFinishStartTime() {
		return planFinishStartTime;
	}

	public void setPlanFinishStartTime(Date planFinishStartTime) {
		this.planFinishStartTime = planFinishStartTime;
	}

	public Date getPlanFinishEndTime() {
		return planFinishEndTime;
	}

	public void setPlanFinishEndTime(Date planFinishEndTime) {
		this.planFinishEndTime = planFinishEndTime;
	}

	public String getFilePath() {
		return filePath;
	}

	public void setFilePath(String filePath) {
		this.filePath = filePath;
	}

	public Integer getIsUploadFile() {
		return isUploadFile;
	}

	public void setIsUploadFile(Integer isUploadFile) {
		this.isUploadFile = isUploadFile;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public Integer getFlag() {
		return flag;
	}

	public void setFlag(Integer flag) {
		this.flag = flag;
	}

	public List<Integer> getStatusArray() {
		return statusArray;
	}

	public void setStatusArray(List<Integer> statusArray) {
		this.statusArray = statusArray;
	}

	public Date getSetupTime() {
		return setupTime;
	}

	public void setSetupTime(Date setupTime) {
		this.setupTime = setupTime;
	}

	public Integer getProjectLevel() {
		return projectLevel;
	}

	public void setProjectLevel(Integer projectLevel) {
		this.projectLevel = projectLevel;
	}

	public String getStartDate() {
		return startDate;
	}

	public void setStartDate(String startDate) {
		this.startDate = startDate;
	}

	public String getEndDate() {
		return endDate;
	}

	public void setEndDate(String endDate) {
		this.endDate = endDate;
	}
}